import java.io.*;

/**
 * @author Administrator
 * 操作实现类：实现接口(HasMap来实现用户操作的3个技能)
 */
public class UserDaoIO implements UserDao{

    @Override
    public void register(User user) {
        BufferedWriter bw=null;
        try {
            //创建字符缓冲流对象
            bw=new BufferedWriter(new FileWriter("D:\\user.txt",true));
            //将user对象中的各属性以“--”为分隔符作为一行文本写入文件
            bw.write(user.getId()+"--"+user.getName()+"--"+user.getPassword()+"--"+user.getAge());
            //加入分隔符
            bw.newLine();
            //刷新
            bw.flush();
        } catch (IOException e) {
            System.out.println("出现异常："+e.getMessage());
        }finally {
            if(bw!=null){
                try {
                    bw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    @Override
    public boolean login(String name, String password) {
        /*1、读取文件中的每一行数据
                创建字符缓冲流对象
                循环操作：
                    调用该对象的readLine（）方法读取一行数据
          2、将相关的数据跟传入的name和password比较
            若相同 返回true
          3、最后返回false
         */
        BufferedReader br=null;
        try {
            br=new BufferedReader(new FileReader("D:\\user.txt"));
            String line=null;
            while ((line=br.readLine())!=null){
                //读取得到一行记录line：2--里斯--123--20
                //将line以“--”分割，得到String数组
                String[] data=line.split("--");
                //取出数组中的第2、3个元素传入到name和password比较
                if(data[1].equals(name)&&data[2].equals(password)){
                    return true;
                }
            }
        } catch (Exception e) {
            System.out.println("出现异常："+e.getMessage());
        }finally {
            if(br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return false;
    }

    @Override
    public void queryAll() {
        BufferedReader br=null;
        try {
            br=new BufferedReader(new FileReader("D:\\user.txt"));
            String line=null;
            while ((line=br.readLine())!=null){
                System.out.println(line);
            }
        } catch (Exception e) {
            System.out.println("出现异常"+e.getMessage());
        }finally {
            if(br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
